<template>
  <div class="contarner-page" @click.stop="showLanguageHandel">
    <page-header ref="languageRef"></page-header>
    <main>
      <div class="downloader flex_ccenter" v-if="!success">
        <div class="container">
          <div class="banner-heading flex_ccenter">
            <div class="heading-item">
              <h1 class="title fw700 f-42 c-fff">تحميل قصة الانستقرام</h1>
              <h2 class="sub c-fff f-18 fw400">
                أفضل تنزيل قصة Instagram مجانًا
              </h2>
            </div>
          </div>
          <div class="form flex_center">
            <div class="input-box flex_between">
              <!-- <input
                    type="text"
                    class="input f-18"
                    v-model="input"
                    @input="handleInput"
                    @paste="handleInput"
                    placeholder="Paste URL Instagram"
                    list="fruits"
                    name="fruit"
                  />
                  <datalist id="fruits">
                    <option value="Apple"></option>
                    <option value="Banana"></option>
                    <option value="Cherry"></option>
                  </datalist> -->
              <input
                type="text"
                class="input f-18"
                v-model="input"
                :disabled="isHttpLoading"
                @input="handleInput"
                @paste="handleInput"
                @keydown="sendDownload($event)"
                placeholder="Paste URL Instagram"
              />
              <div
                class="Paste shou flex_center"
                @click="handleClickPasted"
                v-if="input == ''"
              >
                <div class="btnbg"></div>
                <div class="f-16 c-000 fw700">Paste</div>
              </div>
              <div
                class="clear shou flex_center"
                v-if="input != '' && !isHttpLoading"
                @click.stop="input = ''"
              >
                <div class="btnbg"></div>
                <div class="f-16 c-000 fw700">Clear</div>
              </div>
            </div>
            <div
              v-if="!isHttpLoading"
              @click.stop="downloadHandel"
              class="submit shou fw700 c-fff flex_center"
            >
              Download
            </div>
            <div v-else class="submit shou fw700 c-fff flex_center">
              Please wait
            </div>
          </div>
          <div class="app-submit flex_ccenter">
            <div
              class="submit flex_center"
              v-if="!isHttpLoading"
              @click.stop="downloadHandel"
            >
              <div class="fw700 c-fff f-21">Download</div>
            </div>
            <div class="submit flex_center" v-else>
              <div class="fw700 c-fff f-21">Please wait</div>
            </div>
          </div>
          <div class="loading" v-if="isHttpLoading">
            <div class="loading-dots flex_center">
              <div class="dot"></div>
              <div class="dot"></div>
              <div class="dot"></div>
              <div class="dot"></div>
            </div>
            <div class="tips f-18 flex_center">
              <div>جارٍ استرداد البيانات، يرجى الانتظار بضع ثوانٍ!</div>
            </div>
          </div>
          <div class="error flex_ccenter" v-if="httpError1">
            <div class="hono flex_">
              <div class="error-img"></div>
              <div class="error-img"></div>
              <div class="error-img"></div>
            </div>
            <div class="errMsg f-18">
              لا يستطيع الموقع معالجة الرابط الخاص بك لأنه خاص
            </div>
          </div>
          <div class="error flex_ccenter" v-if="httpError2">
            <div class="hono flex_">
              <div class="error-img"></div>
              <div class="error-img"></div>
              <div class="error-img"></div>
            </div>
            <div class="errMsg f-18">
              البيانات التي أدخلتها ليست رابطا، يرجى إدخال رابط صالح لها
               مثال:
              <div>https://www.instagram.com/reel/Cml9qu-ISqx</div>
            </div>
          </div>
        </div>
      </div>
      <!-- 广告位start -->
      <!-- 广告位end -->
      <div class="container" v-if="!success">
        <div class="body-content">
          <div class="app-box Reverse">
            <div class="app-box__info Reverse">
              <h3 class="app-box__title f-21 fw700 c-000" style="text-align: right;">
                قم بالتنزيل باستخدام تطبيق Insta Downloader
              </h3>
              <p class="f-16 c-ccc" style="text-align: right;">
                يقدم تطبيقنا حلاً سريعًا وبسيطًا لتنزيل مقاطع فيديو Instagram، مما يوفر مقاطع فيديو عالية الجودة بدون علامات مائية.
              </p>
            </div>
            <div class="app-link">
              <a 
                  target="_blank" href="https://play.google.com/store/apps/details?id=ins.freevideodownload.pro">
                <img src="/static/images/google-play.webp" alt="Download app " />
              </a>
              <a href="https://apps.apple.com/us/app/repost-for-video-save-story/id6462401460"  target="_blank">
                <img src="/static/images/IOS.webp" alt="Download app " />
              </a>
            </div>
          </div>
          <div class="quick-info Reverse">
            <h3 class="f-32 c-000">
              تنزيل قصة Instagram مع Savinginsta
            </h3>
            <p class="f-16 c-ccc">
              Savinginsta.Com هو برنامج تنزيل قصص Instagram الأول المعروف
               لسهولة استخدامه وقدرته على تنزيل Instagram بجودة عالية
               قصص في أسرع السرعات. قم بتنزيل قصص Instagram على جهازك
               الهاتف أو الكمبيوتر الشخصي أو الجهاز اللوحي بأعلى جودة باستخدام Instagram الخاص بنا
               تنزيل الفيديو مباشرة من متصفحك. لا يوجد برنامج
               التثبيت مطلوب، وهو يدعم كلاً من Android وiOS.
            </p>
          </div>
          <div class="quick-info Reverse">
            <h3 class="f-32 c-000">
              لماذا تستخدم Savinginsta لتنزيلات قصة Instagram؟
            </h3>
            <p class="f-16 c-ccc">
              قصص Instagram مليئة بالصور ومقاطع الفيديو الجذابة
               جزء كبير من تعبيرنا الرقمي ولكنها مرئية فقط
               لمدة 24 ساعة. إذا كنت تحب مشاهدة قصص Instagram وتريد ذلك
               قم بتنزيلها، Savinginsta هنا للمساعدة. ببساطة أدخل
               Instagram Story URL إلى Savinginsta، وقم بتنزيل الأفضل
               قصص انستغرام مجانا.
            </p>
          </div>
          <div class="how Reverse">
            <div class="how-title">
              <h3 class="f-36 c-000 italic">
                كيفية تنزيل فيديو Instagram Story؟
              </h3>
            </div>
            <div class="steps">
              <div class="step">
                <div class="one">
                  <span class="fw700 c-blue f-16">الخطوة 01:</span>
                  <span class="f-16 c-000"> 
                    أدخل اسم مستخدم Instagram الذي تريد قصته
                     تحميل في Savinginsta.App.</span
            >
                </div>
              </div>
              <div class="step">
                <span class="fw700 c-blue f-16">الخطوة 02:</span>
                <span class="f-16 c-000">
                  اختر القصة التي تريد تنزيلها.</span
                >
              </div>
              <div class="step">
                <span class="fw700 c-blue f-16">الخطوة 03:</span>
                <span class="f-16 c-000"
                  >انقر فوق "تنزيل" لحفظ قصة فيديو Instagram في حسابك
                   جهاز.</span
                >
              </div>
            </div>
          </div>
          <div class="features c-fff Reverse">
            <h3 class="h3 fw700 f-21">
              كيفية تنزيل Insta Story على هاتفك؟
            </h3>
            <div class="attributes-list">
              <div class="features-title">
                التنزيل سهل للغاية. وهنا دليل مفصل:
              </div>
              <div class="item flex_">
                <div class="bgimg"></div>
                <div class="f-14 c-fff">
                  افتح Instagram في متصفح مثل Chrome أو Firefox أو
                   تطبيق انستقرام.
                </div>
              </div>
              <div class="item flex_">
                <div class="bgimg"></div>
                <div class="f-14 c-fff">اختر قصة تجدها جذابة.</div>
              </div>
              <div class="item flex_">
                <div class="bgimg"></div>
                <div class="f-14 c-fff">
                  انقر على الفيديو الذي تريد تنزيله.
                </div>
              </div>
              <div class="item flex_">
                <div class="bgimg"></div>
                <div class="f-14 c-fff">
                  انسخ عنوان URL للقصة من شريط العناوين.
                </div>
              </div>
              <div class="item flex_">
                <div class="bgimg"></div>
                <div class="f-14 c-fff">
                  الصق اسم المستخدم في مربع العنوان على Savinginsta.
                </div>
              </div>
              <div class="item flex_">
                <div class="bgimg"></div>
                <div class="f-14 c-fff">
                  اضغط على "تنزيل" لتنزيل قصة Instagram عبر الإنترنت.
                </div>
              </div>
              <div class="item flex_">
                <div class="bgimg"></div>
                <div class="f-14 c-fff">
                  الصورة أو مقطع الفيديو الخاص بقصة IG الذي قمت بتنزيله موجود الآن في المجلد الخاص بك.
                </div>
              </div>
            </div>
          </div>
          <div class="how Reverse">
            <div class="how-title">
              <h3 class="f-36 c-000 italic">
                كيفية تنزيل قصص Instagram وأبرز الأحداث عبر الإنترنت؟
              </h3>
            </div>
            <div class="steps">
              <div class="step">
                <div class="one">
                  <span class="f-16 c-000"
                    >احصل على الرابط من Instagram Stories أو انسخ
                     اسم المستخدم لحساب Instagram الذي تريد تنزيله
                     من.</span
                  >
                </div>
              </div>
              <div class="step">
                <span class="f-16 c-000"
                  >انتقل إلى Savinginsta - Insta Story Downloader والصق ملف
                   رابط القصة في شريط الأدوات.
                </span>
              </div>
              <div class="step">
                <span class="f-16 c-000"
                  >حدد القصة المعروضة على الشاشة، اختر القصة
                   الذي تريد تنزيله، ثم اضغط على "تنزيل".</span
                >
              </div>
            </div>
          </div>
          <div class="quick-info Reverse">
            <h3 class="f-32 c-000">
              ما الذي يجعل Savinginsta.Com أفضل تنزيل لقصص Instagram (IG).
               أداة؟
            </h3>
            <ul class="f-16 c-ccc">
              <li>سهل الاستخدام وأسرع أداة.</li>
              <li>تحديثات مستمرة لتقديم أفضل خدمة.</li>
              <li>
                مجاني تماما! نحن ندعم تطورنا من خلال الحد الأدنى
                 دعاية.
              </li>
            </ul>
          </div>
          <div class="faq-section">
            <h3 class="faq-title f-36 c-000 italic">FAQ</h3>
            <div class="accordion Reverse">
              <div
                id="faq"
                itemscope="itemscope"
                itemtype="https://schema.org/FAQPage"
              >
                <div
                  itemprop="mainEntity"
                  itemscope="itemscope"
                  itemtype="https://schema.org/Question"
                  class="accordion-item"
                  :key="k"
                  v-for="(item, k) in faqList"
                >
                  <h4 itemprop="name" class="accordion-title fw700 f-16">
                    {{ item.title }}
                  </h4>
                  <div
                    itemprop="acceptedAnswer"
                    itemscope=""
                    itemtype="https://schema.org/Answer"
                  >
                    <div
                      itemprop="text"
                      class="accordion-text f-16 c-ccc fw400"
                    >
                      {{ item.content }}
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
      <!-- 解析结果 start -->
      <div class="container" v-if="success">
        <success-content
          @refresh="refresh"
          :list="successList"
        ></success-content>
      </div>
      <!-- 解析结果 end -->
    </main>
    <footer>
      <div class="container">
        <div class="footer-content Reverse">
          <div class="footer-link">
            <div class="row flex_between">
              <div class="col-12">
                <div class="link-label fw700 c-000 f-21">أدوات</div>
                <ul class="list-unstyled c-ccc f-16">
                  <li>
                    <nuxt-link to="/ar/instagram-story-download" 
                      >تنزيل قصة الانستقرام</nuxt-link
                    >
                  </li>
                  <li>
                    <nuxt-link to="/ar/instagram-reels-video-download" 
                      >تحميل بكرات الانستقرام</nuxt-link
                    >
                  </li>
                  <li>
                    <a href="https://savingtik.com/" target="_blank"
                      >تنزيل تيك توك</a
                    >
                  </li>
                </ul>
              </div>
              <div class="col-6">
                <div class="link-label fw700 c-000 f-21">يدعم</div>
                <ul class="list-unstyled c-ccc f-16">
                  <li>
                    <nuxt-link to="/contact"> اتصال </nuxt-link>
                  </li>
                  <li>
                    <nuxt-link to="/blog"> Blog </nuxt-link>
                  </li>
                </ul>
              </div>
              <div class="col-6">
                <div class="link-label fw700 c-000 f-21">قانوني</div>
                <ul class="list-unstyled c-ccc f-16">
                  <li>
                    <nuxt-link to="/terms-of-service">
                      شروط الخدمة
                    </nuxt-link>
                  </li>
                  <li>
                    <nuxt-link to="/privacy-policy"> سياسة الخصوصية </nuxt-link>
                  </li>
                </ul>
              </div>
            </div>
          </div>
          <div class="copyright flex_ccenter">
            <b class="fw700 f-21 c-000"
              >نحن لسنا تابعين لـ Instagram أو Meta</b
            >
            <div class="c-ccc f-16">
                © {{new Date().getFullYear()}} Insta Downloader All rights reserved. 
            </div>
          </div>
        </div>
      </div>
    </footer>
  </div>
</template>
    
<script>
import { mapState, mapGetters, mapMutations } from "vuex";
import pageHeader from "~/components/page-header.vue";
import SuccessContent from "~/components/success-content.vue";
import CryptoJS from "crypto-js";
import { handleClick, checkString } from "@/plugins/Firebase.js";
export default {
  components: { pageHeader, SuccessContent },
  head: {
    htmlAttrs: {
      lang: "ar",
    },
    bodyAttrs: {
      "data-lang": "ar",
    },
    title: "أفضل تنزيل مجاني لقصص Instagram",
    meta: [
      { property: "og:locale", content: "ar" },
      //Page Information
      {
        name: "description",
        content:
          "قم بتنزيل قصص Instagram عبر الإنترنت بسهولة باستخدام Savinginsta Instagram Downloader مجانًا. احفظ قصص Instagram عالية الجودة مباشرة على جهاز الكمبيوتر أو الهاتف الخاص بك دون أي إعلانات. لا توجد علامات مائية",
      },

      //Schema.org Microdata
      {
        itemprop: "name",
        content: "أفضل تنزيل مجاني لقصص Instagram",
      },

      // Facebook / OpenGraph
      {
        property: "og:title",
        content: "أفضل تنزيل مجاني لقصص Instagram",
      },
      { property: "og:type", content: "website" },
      { property: "og:url", content: "https://savinginsta.com/ar/instagram-story-download" },

      {
        property: "og:description",
        content:
          "قم بتنزيل قصص Instagram عبر الإنترنت بسهولة باستخدام Savinginsta Instagram Downloader مجانًا. احفظ قصص Instagram عالية الجودة مباشرة على جهاز الكمبيوتر أو الهاتف الخاص بك دون أي إعلانات. لا توجد علامات مائية",
      },
      //Twitter
      { name: "twitter:card", content: "summary" },
      { name: "twitter:url", content: "https://savinginsta.com/ar/instagram-story-download" },
      {
        name: "twitter:title",
        content: "أفضل تنزيل مجاني لقصص Instagram",
      },
      {
        name: "twitter:description",
        content:
          "قم بتنزيل قصص Instagram عبر الإنترنت بسهولة باستخدام Savinginsta Instagram Downloader مجانًا. احفظ قصص Instagram عالية الجودة مباشرة على جهاز الكمبيوتر أو الهاتف الخاص بك دون أي إعلانات. لا توجد علامات مائية",
      },
      //multilingual
      {
        name: "google",
        content: "notranslate",
      },
    ],
    link: [
      //multilingual
      {
        rel: "alternate",
        hreflang: "x-default",
        href: "https://savinginsta.com/ar/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "en",
        href: "https://savinginsta.com/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "en-in",
        href: "https://savinginsta.com/in/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "vi",
        href: "https://savinginsta.com/vn/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "tr",
        href: "https://savinginsta.com/tr/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "id",
        href: "https://savinginsta.com/id/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "fr",
        href: "https://savinginsta.com/fr/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "pt",
        href: "https://savinginsta.com/pt/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "ru",
        href: "https://savinginsta.com/ru/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "es",
        href: "https://savinginsta.com/es/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "ms",
        href: "https://savinginsta.com/ms/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "ko",
        href: "https://savinginsta.com/ko/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "ja",
        href: "https://savinginsta.com/ja/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "jv",
        href: "https://savinginsta.com/jv/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "cs",
        href: "https://savinginsta.com/cs/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "de",
        href: "https://savinginsta.com/de/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "it",
        href: "https://savinginsta.com/it/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "pl",
        href: "https://savinginsta.com/pl/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "hu",
        href: "https://savinginsta.com/hu/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "nl",
        href: "https://savinginsta.com/nl/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "ro",
        href: "https://savinginsta.com/ro/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "el",
        href: "https://savinginsta.com/el/instagram-story-download",
      },
      {
        rel: "canonical",
        href: "https://savinginsta.com/ar/instagram-story-download",
      },
    ],
    script: [
      {
        json: {
          "@context": "http://schema.org",
          "@graph": [
            {
              "@type": "WebSite",
              name: "Savinginsta",
              alternateName: "Instagram downloader",
              url: "https://savinginsta.com",
            },
            {
              "@type": "WebPage",
              name: "أفضل برنامج تنزيل مجاني لقصص Instagram - Savinginsta", //title
              inLanguage: "ar", //语种
              description:
                "قم بتنزيل قصص Instagram عبر الإنترنت بسهولة باستخدام Savinginsta Instagram Downloader مجانًا. احفظ قصص Instagram عالية الجودة مباشرة على جهاز الكمبيوتر أو الهاتف الخاص بك دون أي إعلانات. لا توجد علامات مائية.", //元描述
              image: "https://savinginsta.com/static/images/savinginsta_thumbnail.jpg", //绝对路径
              url: "https://savinginsta.com/ar/instagram-story-download", //当前url
            },
          ],
        },
        type: "application/ld+json",
      },
    ],
  },
  data() {
    return {
      input: "",
      success: false,
      isHttpLoading: false,
      httpError1: false,
      httpError2: false,
      current: 0,
      successList: [],
      faqList: [
        {
          title: `ما هو تنزيل قصة Instagram؟`,
          content: `إنها أداة مجانية لتنزيل Instagram Stories بسهولة دون تسجيل.`,
        },
        {
          title: `كيفية تنزيل فيديو Instagram Story؟`,
          content: `اتبع التعليمات البسيطة المذكورة أعلاه لتنزيل قصص Instagram بسرعة على Savinginsta.`,
        },
        {
          title: `كيف يمكنني تنزيل المميزات من Instagram؟`,
          content: `لتنزيل أبرز مقاطع Instagram، يجب أن يكون الحساب عامًا. أدخل اسم المستخدم على Savinginsta.app وانقر فوق "تنزيل".`,
        },
        {
          title: `ماذا لو كنت أرغب في عرض قصص IG بشكل مجهول؟`,
          content: `لدينا حل مثالي: عارض Instagram Story المجهول الخاص بنا Instagram Story Viewer.`,
        },
        {
          title: `هل تحتاج إلى تسجيل الدخول باستخدام حساب Instagram الخاص بك؟`,
          content: `لا يلزم تسجيل الدخول. لا يطلب Savinginsta أي معلومات شخصية، مما يضمن التنزيلات الآمنة والمجهولة.`,
        },
        {
          title: `هل يمكنني حفظ مقاطع الفيديو مباشرة على Instagram؟`,
          content: `نعم، ولكن يجب عليك الانتظار حتى انتهاء الفيديو.`,
        },
        {
          title: `هل الموقع يدعم التحميل من الانستا للكمبيوتر؟`,
          content: `بالتأكيد، يمكنك تنزيل مقاطع الفيديو والصور والقصص والمزيد من جهاز الكمبيوتر. انظر أيضًا: التنزيل من Insta على جهاز الكمبيوتر.`,
        },
        {
          title: `هل يمكنك تنزيل قصة Instagram لنظام Android؟`,
          content: `نعم، انسخ رابط المنشور والصقه في صندوق موقعنا ثم احفظه. لمزيد من المعلومات: قم بالتنزيل من Insta على Android.`,
        },
        {
          title: `كيفية تنزيل مقاطع فيديو وصور Story Instagram على iPhone؟`,
          content: `الأمر سهل تمامًا كما هو الحال على Android. تحقق من دليل تنزيل Story Instagram لنظام التشغيل iOS.`,
        },
        {
          title: `أين يمكنني العثور على مقاطع فيديو القصة المحفوظة على جهاز الكمبيوتر؟`,
          content: `تحقق من سجل التنزيلات في متصفحك باستخدام Ctrl+J لنظام التشغيل Windows وShift+Command+J لنظام التشغيل Mac.`,
        },
      ],
    };
  },
  computed: {
    ...mapGetters(["language"]),
  },
  mounted() {
    this.debouncedDownInput = this.debounce(this.downInput, 1000);
  },
  methods: {
    async downloadHandel() {
      if (this.isHttpLoading || this.input === "") return;
      this.isHttpLoading = false;
      this.httpError1 = false;
      this.httpError2 = false;
      this.input = this.input.replace(/^.*\s?https:\/\//, "https://");
      const insUrlPattern = new RegExp("^http(s|)://.*instagram.com.*/.*$");
      let type = checkString(this.input);
      if (!insUrlPattern.test(this.input)) {
        //点击解析下载按钮
        handleClick("action_ins_detect_boinsom", {
          site: "other",
          noislink: this.input,
          from: "story",
          type: type,
        });
        this.httpError2 = true;
        this.isHttpLoading = false;
        return;
      }
      //点击解析下载按钮
      handleClick("action_ins_detect_boinsom", {
        site: "other",
        from: "story",
        type: type,
      });
      //开始解析  ins_start_resolve
      handleClick("ins_start_resolve", {
        islink: this.input,
        from: "story",
        type: type,
      });
      this.isHttpLoading = true;
      try {
        let result = this.uki(this.input);
        const response = await fetch(
          "https://savinginsta.com/api/downloader/analysis",
          {
            method: "POST",
            headers: { "Content-Type": "application/json" },
            body: JSON.stringify({
              path: result,
            }),
          }
        );
        let encryptedResponse = await response.text();
        let parse = JSON.parse(encryptedResponse);
        if (parse.code != 200) {
          // 解析失败  ins_resolve_fail
          handleClick("ins_resolve_fail", {
            reason: "Failed to fetch",
            islink: this.input,
            from: "story",
            type: type,
          });
          this.httpError1 = true;
          this.isHttpLoading = false;
          return;
        } else {
          //解析成功  ins_resolve_success
          handleClick("ins_resolve_success", {
            type: type,
            from: "story",
          });
          let decryptedResponse = await this.eki(parse.data); // 使用你的解密函数
          this.successList = JSON.parse(decryptedResponse);
          this.success = true;
          this.isHttpLoading = false;
        }
      } catch (error) {
        // 解析失败  ins_resolve_fail
        handleClick("ins_resolve_fail", {
          reason: "Failed to fetch",
          islink: this.input,
          from: "story",
          type: type,
        });
        console.error(error);
        this.httpError1 = true;
        this.isHttpLoading = false;
      }
    },

    uki(input) {
      let CIPHER_ALGORITHM = "DES-CBC";
      let IV_SIZE = 8;
       
      
  try {
        const complexKey = [
          process.env.part1,
          process.env.part2,
          process.env.part3,
          process.env.part4,
          process.env.part5,
          process.env.part6,
          process.env.part7,
          process.env.part8,
        ].join("");
        const keyBytes = CryptoJS.enc.Utf8.parse(complexKey);
        const inputBytes = CryptoJS.enc.Utf8.parse(input);
        const ivBytes = CryptoJS.lib.WordArray.random(IV_SIZE);
        const encrypted = CryptoJS.DES.encrypt(inputBytes, keyBytes, {
          iv: ivBytes,
          mode: CryptoJS.mode.CBC,
          padding: CryptoJS.pad.Pkcs7,
        });
        const ciphertext = ivBytes.concat(encrypted.ciphertext);
        return ciphertext.toString();
      } catch (error) {
        console.error(error);
        return null;
      }
    },
    eki(cipherText) {
      let CIPHER_ALGORITHM = "DES-CBC";
      let IV_SIZE = 8;
       
      const complexKey = [
          process.env.part1,
          process.env.part2,
          process.env.part3,
          process.env.part4,
          process.env.part5,
          process.env.part6,
          process.env.part7,
          process.env.part8,
        ].join("");
      try {
        let keyBytes = CryptoJS.enc.Utf8.parse(
          complexKey.padEnd(CIPHER_ALGORITHM === "DES-CBC" ? 8 : 16)
        );
        let ivBytes = { iv: CryptoJS.enc.Hex.parse(process.env.DES_IV) }; // 如果使用CBC模式，需要一个初始化向量iv，这里是空向量
        let decrypted = CryptoJS.DES.decrypt(
          { ciphertext: CryptoJS.enc.Hex.parse(cipherText) },
          keyBytes,
          ivBytes
        );
        return decrypted.toString(CryptoJS.enc.Utf8);
      } catch (e) {
        console.error(e);
        return null;
      }
    },
    sendDownload(event) {
      if (event.keyCode === 13 && !this.isHttpLoading) {
        this.downloadHandel();
        event.preventDefault();
        return false;
      }
    },
    changeTab(k) {
      this.current = k;
    },
    handleInput(e) {
      this.debouncedDownInput(e);
    },
    debounce(fn, delay) {
      let timer;
      return function () {
        let context = this;
        let args = arguments;
        clearTimeout(timer);
        timer = setTimeout(() => {
          fn.apply(context, args);
        }, delay);
      };
    },
    downInput(e) {
      let type = checkString(e.target.value);
      // 粘贴链接到输入框 action_ins_paste
      handleClick("action_ins_paste", {
        islink: e.target.value,
        from: "story",
        type: type,
      });
    },
    handleClickPasted() {
      if (!navigator.clipboard) {
        console.log("Clipboard API not available");
        return;
      }
      navigator.clipboard
        .readText()
        .then((text) => {
          this.input = text;
          let type = checkString(text);
          // 粘贴链接到输入框 action_ins_paste
          handleClick("action_ins_paste", {
            islink: text,
            from: "story",
            type: type,
          });
        })
        .catch((err) => {
          console.error("Failed to read clipboard contents: ", err);
        });
    },
    showLanguageHandel() {
      this.$refs.languageRef.close();
    },
    refresh() {
      this.success = false;
      this.input = "";
      this.successList = [];
    },
  },
};
</script>
<style lang="scss" scoped>
 @import "@/static/style/story.css";
.loading {
  .loading-dots {
    position: relative;
    z-index: 999;
    margin-top: 70px;
  }

  .dot {
    background-color: #ffffff;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    margin: 0 10px;
    animation: loading-animation 1.5s infinite;
  }

  .dot:nth-child(2) {
    animation-delay: 0.5s;
  }

  .dot:nth-child(3) {
    animation-delay: 0.8s;
  }
  .dot:nth-child(4) {
    animation-delay: 1s;
  }
}
@keyframes loading-animation {
  0%,
  50%,
  80%,
  100% {
    transform: scale(1);
  }
  40% {
    transform: scale(1.5);
  }
}
.features {
  .bgimg {
    margin: 0;
    margin-left: 10px !important;
    background-image: url("~static/images/Arrowhead-left.webp") !important;

  }
}
@media (max-width: 768px) {
  .features {
    .bgimg {
      margin: 0 !important;
    }
  }
  .loading {
    .loading-dots {
      margin-top: 26px !important;
    }
    .dot {
      width: 8px !important;
      height: 8px !important;
    }
  }
}
</style>
    